package conson.tech.manage.coupons.entity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * InterfaceName: ActivityDetailVo
 * Description: 领券活动详情展示实体
 * Author: XYF
 * Date: 2020/7/22 13:39
 * Version: 1.0
 */
@ApiModel(value = "conson.tech.manage.coupons.entity.vo.ActivityDetailVo", description = "领券活动详情展示实体")
@Data
public class ActivityDetailVo implements Serializable {

    private static final long serialVersionUID = 5985960136333340981L;

    /**
     * 活动id
     */
    @ApiModelProperty(value = "活动id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 活动名称
     */
    @ApiModelProperty(value = "活动名称")
    private String activityName;
    /**
     * 领券类型，0请选择、1定向发放、2直接领取
     */
    @ApiModelProperty(value = "领券类型 1定向发放、2直接领取 ")
    private Integer collectType;
    /**
     * 优惠券发放形式（1指定账户,2指定用户群）默认为1
     */
    @ApiModelProperty(value = " 优惠券发放形式（1指定账户,2指定用户群）默认为1")
    private Integer grantMethod;
    /**
     * 发放时间类型  1:立即发放 2:定时发放
     */
    @ApiModelProperty(value = "发放时间类型  1:立即发放 2:定时发放")
    private Integer grantType;
    /**
     * 是否到账提醒（0否 1是）
     */
    @ApiModelProperty(value = "是否到账提醒（0否 1是）")
    private Integer arriveType;
    /**
     * 是否发送短信（0否 1是）
     */
    @ApiModelProperty(value = "是否发送短信（0否 1是）")
    private Integer messageType;
    /**
     * 是否推送AppPush（0否 1是）
     */
    @ApiModelProperty(value = "是否推送AppPush（0否 1是）")
    private Integer pushType;
    /**
     * 推送内容
     */
    @ApiModelProperty(value = "推送内容")
    private String pushContent;
    /**
     * 发放时间 细化到小时
     */
    @ApiModelProperty(value = "发放时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime grantTime;
    /**
     * 活动开始时间
     */
    @ApiModelProperty(value = "活动开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate startTime;
    /**
     * 活动结束时间
     */
    @ApiModelProperty(value = "活动结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate endTime;
    /**
     * 活动规则
     */
    @ApiModelProperty(value = "活动规则")
    private String avtivityRule;
    /**
     * 活动状态
     */
    @ApiModelProperty(value = "活动状态")
    private Integer status;

    /**
     * 领券活动中优惠券详情
     */
    @ApiModelProperty(value = "领券活动中优惠券详情")
    List<ActivityCouponDetailVo> couponDetailVos;
}
